package LeetCode1;

public class Num905 {

    //LeetCode905号问题，按奇偶排序数组
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 3, 2, 7, 8};
        int[] temp = sortArrayByParity(arr);
        for (int i = 0; i < temp.length; i++) {
            System.out.print(temp[i]);
        }
    }

    public static int[] sortArrayByParity(int[] nums) {
        //自己写的
//        int start = 0, tail = nums.length - 1;
//        while (start < tail) {
//            if (nums[start] % 2 == 0) {
//                start++;
//            }else {
//                int temp = nums[tail];
//                nums[tail] = nums[start];
//                nums[start] = temp;
//                tail--;
//            }
//        }
//        return nums;
        //答案
        int i = 0, j = nums.length - 1;
        while (i < j) {
            //遇到奇数停下来
            while (i < j && nums[i] % 2 == 0) {
                i++;
            }
            //遇到偶数停下来
            while (i < j && nums[j] % 2 != 0) {
                j--;
            }
            int temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp;
        }
        return nums;
    }
}
